import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;

public class Solution {
//    public char firstUniqChar(String s) {
//        char[] arr = s.toCharArray(); // 这里多此一举，可以直接迭代String按照char的方式
//        Map<Character, Integer> map = new LinkedHashMap<>();
//        for (char c : arr) {
//            if (map.containsKey(c)) {
//                map.put(c, map.get(c) + 1);
//            } else {
//                map.put(c, 1);
//            }
//        }
//        /*这里不需要迭代map，迭代String就可以，迭代map会比较麻烦*/
//
//    }

    /*更好的方法*/
    public char firstUniqChar2(String s) {
        Map<Character, Integer> map = new HashMap<>();
        for (int i = 0; i < s.length(); ++i) {
            char c = s.charAt(i);
            map.put(c, map.getOrDefault(c, 0) + 1);
        }
        for (int i = 0; i < s.length(); ++i) {
            if (map.get(s.charAt(i)) == 1) return s.charAt(i);
        }
        return ' '; // char类型必须用‘ ’
    }
}
